Skip to content

Add all fbgemm kernel Tensors into Int4WeightOnlyConfig and Float8DynamicActivationInt4WeightConfig #2474

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: jerryzh168/stack/9
Choose a base branch
from

Conversation

jerryzh168
Copy link
Contributor

@jerryzh168 jerryzh168 commented Jul 2, 2025

Stacked PRs:


Add all fbgemm kernel Tensors into Int4WeightOnlyConfig and Float8DynamicActivationInt4WeightConfig

Summary:
we will

  • deprecate FbgemmConfig since it's a single kernel (later).
  • we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
  • Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

Copy link

pytorch-bot bot commented Jul 2, 2025

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/ao/2474

Note: Links to docs will display an error until the docs builds have been completed.

❌ 7 New Failures, 1 Cancelled Job, 2 Unrelated Failures

As of commit aba5d26 with merge base 975bd57 (image):

NEW FAILURES - The following jobs have failed:

CANCELLED JOB - The following job was cancelled. Please retry:

FLAKY - The following job failed but was likely due to flakiness present on trunk:

BROKEN TRUNK - The following job failed but was present on the merge base:

👉 Rebase onto the `viable/strict` branch to avoid these failures

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from a3d0835 to 4b0c7c7 Compare July 2, 2025 01:58
jerryzh168 added a commit that referenced this pull request Jul 2, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 2, 2025
@jerryzh168 jerryzh168 added the topic: new feature Use this tag if this PR adds a new feature label Jul 2, 2025
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 2, 2025 20:35
jerryzh168 added a commit that referenced this pull request Jul 2, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 4b0c7c7 to f5977ce Compare July 2, 2025 20:36
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 2, 2025 20:36
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 2, 2025 21:42
jerryzh168 added a commit that referenced this pull request Jul 2, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch 2 times, most recently from 04ce2c5 to afd8703 Compare July 2, 2025 21:42
jerryzh168 added a commit that referenced this pull request Jul 2, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 2, 2025 21:42
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 2, 2025 23:44
jerryzh168 added a commit that referenced this pull request Jul 2, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from afd8703 to ff4682e Compare July 2, 2025 23:44
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 2, 2025 23:44
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 3, 2025 00:09
jerryzh168 added a commit that referenced this pull request Jul 3, 2025
…micActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from ff4682e to 58f8a2a Compare July 3, 2025 00:09
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 3, 2025 00:09
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 3, 2025 02:18
jerryzh168 added a commit that referenced this pull request Jul 3, 2025
…amicActivationInt4WeightConfig

Summary:
att, we will deprecate FbgemmConfig since it's a single kernel.
we'd like to categorize things to derived dtype + packed format

Test Plan:
python test/quantization/quantize_/test_int4_groupwise_preshuffle.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 00:27
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 00:53
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 1bdd532 to 664dd5c Compare July 15, 2025 00:53
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 00:53
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 01:44
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 664dd5c to 037c964 Compare July 15, 2025 01:44
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 01:44
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 03:42
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 037c964 to 35974be Compare July 15, 2025 03:42
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 03:42
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 18:15
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 35974be to e7b03a9 Compare July 15, 2025 18:15
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 18:15
Copy link
Contributor

@andrewor14 andrewor14 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, left some comments mostly about documentation

@@ -1123,6 +1125,9 @@ class Int4WeightOnlyConfig(AOBaseConfig):
zero_point_domain: Optional[ZeroPointDomain] = ZeroPointDomain.NONE
set_inductor_config: bool = True
preserve_zero: Optional[bool] = None
# since not all tensors are migrated to the new structure yet,
# we use `_legacy' to represent the previous layout
packing_format: PackingFormat = "_legacy"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can "legacy" mean different things for different configs? I wonder if we should make this optional instead, where None represents "legacy"?

Copy link
Contributor Author

@jerryzh168 jerryzh168 Jul 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah legacy just means no packing format, (it's implemented with AQT), I plan to remove the support for legacy at some point and don't want to complicate the typing here

@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 21:11
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from e7b03a9 to b719048 Compare July 15, 2025 21:11
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 21:11
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 15, 2025 23:12
jerryzh168 added a commit that referenced this pull request Jul 15, 2025
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from b719048 to 626c82d Compare July 15, 2025 23:12
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 15, 2025 23:12
…amicActivationInt4WeightConfig

Summary:
we will
* deprecate FbgemmConfig since it's a single kernel (later).
* we'd like to categorize things to derived dtype + packed format, e.g. int4 preshuffled, float8 plain
* Added PackingFormat that has preshuffled, plain and _legacy for legacy implementation

Test Plan:
python test/quantization/quantize_/workflows/int4/test_int4_tensor.py
python test/quantization/quantize_/workflows/int4/test_int4_preshuffled_tensor.py
python test/quantization/quantize_/workflows/float8/test_float8_tensor.py

Reviewers:

Subscribers:

Tasks:

Tags:

stack-info: PR: #2474, branch: jerryzh168/stack/10
@jerryzh168 jerryzh168 changed the base branch from jerryzh168/stack/9 to main July 16, 2025 00:18
@jerryzh168 jerryzh168 force-pushed the jerryzh168/stack/10 branch from 626c82d to aba5d26 Compare July 16, 2025 00:18
@jerryzh168 jerryzh168 changed the base branch from main to jerryzh168/stack/9 July 16, 2025 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. topic: new feature Use this tag if this PR adds a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants